mitmproxy 是一款强大的中间人代理工具，它能够拦截、查看和修改 HTTP(S) 流量。通过结合 Python 脚本化能力，用户可以定制各种自动化操作。以下是关于如何使用 mitmproxy 的 Python API 编写脚本来处理 HTTPS 请求的基本指南。

### 安装 Mitmproxy

首先要确保你已安装了最新版本的 `mitmproxy` 库及其依赖项。你可以直接通过 pip 工具来完成安装：

```bash
pip install mitmproxy
```

为了方便后续调试与日志记录等功能推荐同时安装额外组件：

```bash
pip install --upgrade "mitmproxy[all]"
```

### 创建基本脚本

我们可以创建一个名为 `modify_response.py` 文件，在里面定义我们需要执行的操作逻辑，比如改变响应内容或注入自定义 HTML/CSS/JavaScript 等。

#### 示例 - 修改页面标题及添加横幅广告

这是一个简单的例子，展示了如何更改网页返回的数据流，例如将所有网页顶部加上一条横幅，并且把每个页面 <title> 元素替换成特定文本：

```python
from mitmproxy import http

def request(flow: http.HTTPFlow) -> None:
    """在请求发出之前做一些预处理"""
    pass 

def response(flow: http.HTTPFlow) -> None:
    """当服务器回应客户端的时候做某些事情"""

    if flow.response.status_code == 200 and flow.request.host.endswith("example.com"):
        html = flow.response.text
        
        # 替换<title>
        start_tag = "<title>"
        end_tag   = "</title>"
        old_title_start = html.find(start_tag)+len(start_tag)
        old_title_end   = html.find(end_tag,old_title_start)
        new_html = html[:old_title_start] + "新标题" + html[old_title_end:]

        # 添加横幅广告
        banner_advertisement = '<div style="background-color:red; color:white; padding:1em;">这是我们的广告</div>'
        body_start_position = new_html.lower().find("<body>")
        modified_content = new_html[:body_start_position+len("<body>")] + \
                           banner_advertisement + \
                           new_html[body_start_position+len("<body>"):]
        
        flow.response.text = modified_content  
```

保存文件后，启动 mitmdump 并指定此脚本路径作为插件运行:

```bash
mitmdump -p 8080 -s modify_response.py
```

此时打开浏览器并将系统代理设置为 localhost:8080 ，浏览目标网站即可看到效果啦！

请注意上述代码只是简单示范了一些基础用法；实际应用中还需要考虑更多的边界情况（如编码格式转换等），并且应遵守法律法规合理合法地利用该技术手段。

此外还有其他丰富的API供开发者深入挖掘，详情参见官方文档 [https://docs.mitmproxy.org/stable/concepts-scripts/#api](https://docs.mitmproxy.org/stable/concepts-scripts/#api).